package cc.sunni.user.service;

import cc.sunni.common.enums.Sex;
import cc.sunni.pojo.user.Fans;
import cc.sunni.pojo.vo.RegionRatioVO;
import com.baomidou.mybatisplus.extension.service.IService;
import cc.sunni.api.utils.PageUtils;

import java.util.List;
import java.util.Map;

/**
 * 粉丝表，用户与粉丝的关联关系，粉丝本质也是用户。
 * 关联关系保存到es中，粉丝数方式和用户点赞收藏文章一样。累加累减都用redis来做。
 * 字段与用户表有些冗余，主要用于数据可视化，数据一旦有了之后，用户修改性别和省份无法影响此表，只认第一次的数据。
 *
 * @author jl
 * @since 2021-02-19 23:34:35
 */
public interface FansService extends IService<Fans> {
    /**
     * 查询当前用户是否关注作家
     */
    boolean isMeFollowThisWriter(String writerId, String fanId);
    /**
     * 关注成为粉丝
     */
    void follow(String writerId, String fanId);
    /**
     * 粉丝取消关注
     */
    void unfollow(String writerId, String fanId);
    /**
     * 查询我的粉丝数
     */
    PageUtils queryMyFansList(String writerId, Integer page, Integer pageSize);
    /**
     * 查询粉丝数
     */
    Integer queryFansCounts(String writerId, Sex sex);
    /**
     * 查询粉丝数
     */
    List<RegionRatioVO> queryRegionRatioCounts(String writerId);
}

